extensions: naive-CMYK. works perceptually
authorTéo Mazars <teo.mazars@ensimag.fr>
Thu, 27 Jun 2013 19:12:53 +0000 (21:12 +0200)
committerTéo Mazars <teo.mazars@ensimag.fr>
Thu, 27 Jun 2013 19:14:49 +0000 (21:14 +0200)
extensions/naive-CMYK.c

index 75723da87be3a4886b3ca8c4cac4a7d82a6f0dc5..a3f94fe3d74ce4ea8b8ac1958e552d9b6bbab11f 100644 (file)
@@ -21,6 +21,7 @@
 #include <string.h>
 
 #include "babl.h"
+#include "base/util.h"
 
 
 static long  rgba_to_cmyk (char *src,
@@ -85,9 +86,9 @@ rgba_to_cmyk (char *src,
 {
   while (n--)
     {
-      double red   = ((double *) src)[0];
-      double green = ((double *) src)[1];
-      double blue  = ((double *) src)[2];
+      double red   = linear_to_gamma_2_2 (((double *) src)[0]);
+      double green = linear_to_gamma_2_2 (((double *) src)[1]);
+      double blue  = linear_to_gamma_2_2 (((double *) src)[2]);
 
       double cyan, magenta, yellow, key;
 
@@ -157,9 +158,9 @@ cmyk_to_rgba (char *src,
       green = 1.0 - magenta;
       blue  = 1.0 - yellow;
 
-      ((double *) dst)[0] = red;
-      ((double *) dst)[1] = green;
-      ((double *) dst)[2] = blue;
+      ((double *) dst)[0] = gamma_2_2_to_linear (red);
+      ((double *) dst)[1] = gamma_2_2_to_linear (green);
+      ((double *) dst)[2] = gamma_2_2_to_linear (blue);
 
       ((double *) dst)[3] = 1.0;